package com.example.homework.baseActivity;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import com.example.homework.R;
import com.example.homework.db.DBHelper;

public class QueryActivity extends AppCompatActivity {

    private ListView listView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_query);

        // 找到Toolbar并设置为ActionBar
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        // 设置页面标题
        setTitle("浏览信息");

        // 获取ListView用于展示列表数据
        listView = findViewById(android.R.id.list);

        // 创建DBHelper实例用于操作数据库
        DBHelper dbHelper = new DBHelper(this);

        // 调用DBHelper的query方法获取数据库查询结果游标
        Cursor cursor = dbHelper.query();

        // 定义从游标中获取数据对应的列名数组，去除了编号对应的列
        String[] fromColumns = {"name", "age", "sex", "edu"};

        // 定义要将数据显示到布局中对应组件的id数组，这里要与info_list_item布局中的TextView的id对应
        int[] toViews = {R.id.name, R.id.age, R.id.gender, R.id.degree};

        // 创建SimpleCursorAdapter，将游标数据与列表项布局进行适配
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(
                this,
                R.layout.info_list_item,
                cursor,
                fromColumns,
                toViews
        );

        // 将适配器设置给ListView，这样数据就能在列表中展示出来了
        listView.setAdapter(adapter);
    }

    // 重写这个方法来处理ActionBar上的菜单项点击事件
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            finish();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    // 这个方法用于创建菜单，一般可以在这里添加自定义的菜单选项等，目前我们主要是利用默认的返回按钮功能
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        return super.onCreateOptionsMenu(menu);
    }
}